package com.hkyp.ss.course.provider.model;


import com.hkyp.ss.course.provider.model.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.hibernate.annotations.DynamicInsert;
import org.hibernate.annotations.DynamicUpdate;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.Table;
import java.math.BigDecimal;

@Data
@Entity
@DynamicUpdate
@DynamicInsert
@Table(
        indexes = {
                @Index(columnList = "status",name = "statusIndex"),
                   //常做查询条件的列加索引
                @Index(columnList = "category",name = "categoryIndex"),
        }
)
@EqualsAndHashCode(callSuper=true)
public class Course extends BaseEntity {



    /**
     * 课程编号
     *
     * 后台为课程生成的唯一编码，生成规则：添加日期+四位编码，例1812220001
     *
     * 非空
     * 字段长度50
     * 需求限制在40字符以内
     */
    @Column(name = "course_number", length = 20, nullable = false)
    private String courseNumber;

    /**
     * 课程名称
     * 非空
     * 字段长度50
     * 需求限制在40字符以内
     */
    @Column(name = "title", length = 50, nullable = false)
    private String title;


    /**
     * 课程简介
     */
    private String Introduction;

    /**
     * 封面
     * 存储图片url
     * 非空
     */
    @Column(name = "cover", length = 500,nullable = false)
    private String cover;




    /**
     * 课程目录
     */
    @Column(nullable = false)
    private String catalogue;

    /**
     * 课程链接
     */
    @Column(length = 1000)
    private String courseUrl;




    /**
     * 收藏数
     */
    private Integer collection = 0;

    /**
     * 点赞数
     */
    @Column(name = "user_like")
    private Integer userLike = 0;

    /**
     * 课评数
     * 评论人数      comment
     */
    private Integer commentNum = 0;

    /**
     * 课程状态
     * 默认下架
     * 0：上架；1：下架  2.删除
     */
    @Column(columnDefinition = "tinyint")
    private Integer status = 1;


    /**
     * 来源平台
     *source_platform_code
     */
    private String sourcePlatform;

    /**
     * 来源平台编号
     * source_platform_code
     */
    private Integer sourcePlatformCode;
    /**
     * 课程时间
     *
     */
    private String CourseTime;

    /**
     * 官方价格
     *
     * 0 代表免费
     *
     */
    private BigDecimal officialPrice = new BigDecimal(0);

    /**
     * 综合评分
     * comprehensive score
     * 所有人对此课程评分的均值
     * 总共1到10分
     *
     */
    private Integer comScore;

    /**
     *  已学习人数
     *
     */
    private Integer studyNum;


    /**
     *  导航栏里的分类
     *  对应导航栏表里的code
     */
    private  Long category;



    /**
     * 课程状态
     * 默认0
     * 0:未推荐 1：推荐
     */
    @Column(columnDefinition = "tinyint")
    private Integer recommend = 0;
    /**
     * 课程状态
     * 默认0
     * 0:未删除 1：删除
     */
    @Column(columnDefinition = "tinyint")
    private Integer deleted = 0;














    /*******************************  选择性待删除    ********************************/


    /**
     * banner图
     * 存储banner图url
     */
    @Column(name = "banner_url")
    private String bannerUrl;
    /**
     * 视频类型
     * 0：card；1：banner
     */
    private Integer type;




}


